// 封装分类数据相关业务逻辑
import { ref, onMounted } from 'vue'
import { getCategoryAPI } from '@/apis/category'
import { useRoute } from 'vue-router'
import { onBeforeRouteUpdate } from 'vue-router'
export const useCategory = () => {
  const categoryData = ref({})
  const route = useRoute()
  const getCategory = async (id = route.params.id) => {
    // 在setup中获取路由参数 useRoute() -> route 等价于this.$route
    const res = await getCategoryAPI(id)
    categoryData.value = res.result
  }
  onMounted(() => {
    getCategory()
  })
  // 目标：路由参数发生变化的时候，可以把分类数据接口重新发送
  onBeforeRouteUpdate((to) => {
    console.log('路由参数发生变化了')
    // 存在问题：路由参数发生变化，但是getCategory()方法中，路由参数还没有发生变化
    // 解决问题：to  -> 获取到最新的路由参数
    console.log(to)
    getCategory(to.params.id)
  })
  return { categoryData }
}
